#ifndef WORD_H
#define WORD_H

#include "corecommon.h"

namespace TA {

class Word : public QObject
{
    Q_OBJECT
public:
    explicit Word(QObject *parent = 0);
    Word(QObject *parent,const QString& uuid);
    Word(const Word& rhs);

    QString getUuid() const;
    void setUuid(const QString &value);

    QString getWord() const;
    void setWord(const QString &value);

    int getLength() const;
    void setLength(int value);

    WordType getType() const;
    void setType(const WordType &value);

    WordStatus getStatus() const;
    void setStatus(const WordStatus &value);

    Project *getProject() const;
    void setProject(Project *value);

    bool operator==(const Word& other) const;
    bool operator!=(const Word& other) const;
    bool operator<(const Word& other) const;
    Word& operator=(const Word& other);

    WordPositionRawPtrArray& getPositions() ;
    void setPositions(const WordPositionRawPtrArray &value);

private:
    void init(QObject *parent,const QString& uuid);

private:
    QString uuid;
    QString word;
    int length;
    WordType type;
    WordStatus status;
    Project* project;
    WordPositionRawPtrArray positions;

signals:

public slots:
};


}
#endif // WORD_H
